package fachklassen;

import helper.BLError;
import helper.BLWarning;
import helper.Helper;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import database.DatabaseManager;
/**
 * Fachklasse mit Gettern und Settern
 *
 * @author	Michael Wolf
 * @author	Tanja Goletz
 * @version	1.0
 */
public class KlassenlehrerKlasse {
	Date schuljahr;
	
	int klassenlehrerID;
	Klassenlehrer klassenlehrer = null;
	int klassenID;
	Klasse klasse = null;
	
	public Date getSchuljahr() {
		return schuljahr;
	}
	public void setSchuljahr(String schuljahr) throws ParseException {
		this.schuljahr = Helper.parseDate(schuljahr);
		
	}
	public void setSchuljahr(Date schuljahr) {
		this.schuljahr = schuljahr;
	}
	
	public int getKlassenlehrerID() {
		return klassenlehrerID;
	}
	public void setKlassenlehrerID(int klassenlehrerID) {
		this.klassenlehrerID = klassenlehrerID;
		this.klassenlehrer = null;
	}
	public Klassenlehrer getKlassenlehrer() throws BLError, BLWarning {
		if (klassenlehrer == null) {
			ArrayList<Object> elements = DatabaseManager.getInstance().getByAttribute(Klassenlehrer.class, "klassenlehrerID", klassenlehrerID);
			if (elements.size() == 0) klassenlehrer = null;
			else klassenlehrer = (Klassenlehrer)elements.get(0);
		}
		return klassenlehrer;
	}
	public void setKlassenlehrer(Klassenlehrer klassenlehrer) {
		this.klassenlehrer = klassenlehrer;
		this.klassenlehrerID = klassenlehrer.getKlassenlehrerID();
	}
	
	public int getKlassenID() {
		return klassenID;
	}
	public void setKlassenID(int klassenID) {
		this.klassenID = klassenID;
		this.klasse = null;
	}
	public Klasse getKlasse() throws BLError, BLWarning {
		if (klasse == null) {
			ArrayList<Object> elements = DatabaseManager.getInstance().getByAttribute(Klasse.class, "klassenID", klassenID);
			if (elements.size() == 0) klasse = null;
			else klasse = (Klasse)elements.get(0);
		}
		return klasse;
	}
	public void setKlasse(Klasse klasse) {
		this.klasse = klasse;
		this.klassenID = klasse.getKlassenID();
	}

}
